package Parser;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.XMLOutputter;

import EntitiesDTO.ItemCotizacionDTO;
import EntitiesDTO.ItemSolicitudCotizacionDTO;

public class WriterXML {

	private WriterXML() {

	}

	private static WriterXML instance;

	public static WriterXML getInstance() {
		if (instance == null) {
			instance = new WriterXML();
		}
		return instance;
	}

	public String SolicitarCotizacion(List<ItemCotizacionDTO> cotizacion) {

		Element root = new Element("solicitudCotizacion");
		root.setAttribute("idCliente","302");
		for (ItemCotizacionDTO aux : cotizacion) {
			Element id = new Element("idRodamiento");
			Element cant = new Element("cantidad");
			id.addContent(aux.getRodamiento().getCodigo());
			cant.addContent(String.valueOf(aux.getCantidad()));
			Element articuloCotizacion = new Element("itemCotizacion");
			articuloCotizacion.addContent(id);
			articuloCotizacion.addContent(cant);
			root.addContent(articuloCotizacion);
		}

		Document doc = new Document(root);

		XMLOutputter out = new XMLOutputter();

		try {
			FileOutputStream file = new FileOutputStream(
					"C:/SolicitudCotizacion.xml");
			out.output(doc, file);
			file.flush();
			file.close();
			out.output(doc, System.out);
			
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return out.outputString(doc);
	}

	public String SolicitarCompra(List<ItemSolicitudCotizacionDTO> itemCompra) {

		Element root = new Element("solicitudCompra");
		root.setAttribute("idCliente","12003-2");
		for (ItemSolicitudCotizacionDTO aux : itemCompra) {
			Element id = new Element("idRodamiento");
			Element cant = new Element("cantidad");
			id.addContent(aux.getRodamiento().getCodigo());
			cant.addContent(String.valueOf(aux.getCantidad()));
			Element articuloCotizacion = new Element("itemCompra");
			articuloCotizacion.addContent(id);
			articuloCotizacion.addContent(cant);
			root.addContent(articuloCotizacion);
		}

		Document doc = new Document(root);

		XMLOutputter out = new XMLOutputter();
		String _toreturn=null;
		try {
			FileOutputStream file = new FileOutputStream(
					"C:/SolicitudCompra.xml");
			out.output(doc, file);
			_toreturn=out.outputString(doc);
			file.flush();
			file.close();
			out.output(doc, System.out);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		return _toreturn;
		
	}
}
